The Meta Object Facility (MOF) is an Object Management Group (OMG) standard for Model Driven Engineering. MOF is used to define model structures based on a meta-model, which specifies the elements and fields that can be present in an instance of the model. Each element is typed, and each element can contain one or more “structural features” that are also typed.
Additionally, the meta-model can be extended by the creation and application of a profile, which contains stereotypes that can be used to extend the structural features of any element. These profiles and stereotypes change the structure of any model and element to which they are applied. To complicate matters, it is possible to apply a profile to an individual package at any level of the model's hierarchy of packages. And to further complicate matters, a package may be moved in a contributor model such that some contained packages for which a profile was in scope are no longer covered by that profile. A final complication is the fact that each of these profiles can be at a different version, depending on whether the specific user chose to upgrade to a newly released profile or not.
In order for two models that were worked in parallel to be comparable, their meta-models must be fully aligned, i.e., the same profiles at the same versions must be applied to the same packages at the same level in the total hierarchy. While more advanced version control systems used in modeling provide automated merge facilities, they do not incorporate automated processes for aligning meta-models. Instead, existing techniques require the realignment to be done manually in which the models are compared and merged in a tedious manual operation done outside the scope of the automated merge facilities. This is extremely inconvenient and error-prone. Accordingly, a need exists for an automated system for aligning meta-models.